package com.example.demo.list;

import java.util.*;

public class Test {

    @org.junit.Test
    public void test() {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(6);
        list.add(7);
        list.add(8);
        list.add(9);
        list.add(10);
        list.add(11);
        list.add(12);
        list.add(13);
        list.add(14);
        list.add(15);
        list.add(16);
        list.add(17);
        list.add(18);
        list.add(19);
        list.add(20);
        list.add(21);
        list.add(22);
        list.add(23);
        list.add(24);
        list.add(25);
        list.add(26);


        List<String> list2 = new ArrayList<>();
        list2.add("A");
        list2.add("B");
        list2.add("C");
        list2.add("D");
        list2.add("E");
        list2.add("F");
        list2.add("G");
        list2.add("H");
        list2.add("I");
        list2.add("J");
        list2.add("K");
        list2.add("L");
        list2.add("M");
        list2.add("N");
        list2.add("O");
        list2.add("P");
        list2.add("Q");
        list2.add("R");

        long currentTimeMillis = System.currentTimeMillis();

        method1(list, list2);
        long currentTimeMillis1 = System.currentTimeMillis();
        System.out.println("耗时" + (currentTimeMillis1 - currentTimeMillis));
    }


    private void method1(List<Integer> list1, List<String> list2) {
        Map<String, List<Integer>> result = new HashMap<>();
        int i = 0;
        outer:
        for (Integer item : list1) {

            i = i % list2.size();
            String str = list2.get(i);
            List<Integer> integers = result.get(str);
            if (integers != null) {
                integers.add(item);
                i++;

            } else {
                List<Integer> integers1 = new ArrayList<>();
                integers1.add(item);
                result.put(str, integers1);
                i++;
            }
        }
        System.out.println(result);
    }

    @org.junit.Test
    public void test2() {
        String[] s1 = new String[]{"a", "b", "c"};
        String[] s2 = Arrays.copyOf(s1, s1.length);

        System.out.println(s1);
        System.out.println(s2);

        System.out.println(Arrays.toString(s1));
        System.out.println(Arrays.toString(s2));

        s1[0] = "hhh";//修改原型数组的第一个元素值

        System.out.println("======================");
        System.out.println(Arrays.toString(s1));
        System.out.println(Arrays.toString(s2));


        int[] ints = new int[2];

        //不规则数组
        int[][] ints1 = new int[10][];

    }

    @org.junit.Test
    public void test3() {

        Deque<Integer> pQueue = new ArrayDeque<>();
        for (int i = 0; i < 10; i++) {
            pQueue.push(i);
        }
        System.out.println(pQueue.toString());
    }
}
